'''
1. 不能重载的,重复的函数会被覆盖
2. 不限定类型,类型提示 标识符:类型
3. 参数的多样性,用法多样,但是格式要求还是严格
'''

def hello_someone():
    print(1)
def hello_name(name:str):


    print("hello"+name)
def return_test():

    return 1,2#代表函数终止

def params_test(num1,num2):
    '''
    函数的文档:当前函数的描述
    注意`,位置应该是在函数内第一行书写,有规定的格式和参数,属于比较官方的形式
    :param num1: 要加入的第一个函数
    :param num2: 要加的第二个值
    :return: 他们的累加和
    '''

    print(f"{num1}+{num2} = {num1+num2}")

def price(price,discount = 10):
    print(price*discount/10)

def sum_nums(*num):
    print(*num) #传入的参数这个概念
    sum = 0
    print(num) #是参数值的封装元组,才是我们操作的值

    for i in num:
        sum += i
    print("累加的和是",sum)
def keywords_are_indefinitely(**key):

    print(1,2,3,4,5,**key)
    print(1,2,3,5)

    print(key['sep'])#封装成字典




hello_someone()
hello_name('kajshda')

a,b = return_test()
#默认匹配是位置
# params_test(2,1)
#通过关键字匹配
params_test(num2=1,num1=2)
#就是会忽略传值
price(100,5)
#不定长参数(位置)
sum_nums(1,2,3,4)
#关键字不定长


keywords_are_indefinitely(sep = "+",end = "---------\n")


print(a,b,sep="|")